struct io_header
{
  int      npart[6];
  double   mass[6];
  double   time;
  double   redshift;
  int      flag_sfr;
  int      flag_feedback;
  int      npartTotal[6];
  int      flag_cooling;
  int      num_files;
  double   BoxSize;
  double   Omega0;
  double   OmegaLambda;
  double   HubbleParam; 
  char     fill[256- 6*4- 6*8- 2*8- 2*4- 6*4- 2*4 - 4*8];  /* fills to 256 Bytes */
};

struct point
{
	int name ;
	bool visitado;
	int distancia;
        vector <point>::iterator padre;
};

struct link
{
        vector <point>::iterator r,l;
};

struct ptcl
{
  float  Pos[3];
  float  Vel[3];
  int    Id    ;
  int    Idgrupo;
  bool   visitado;
};

struct face
{
  int Id;
  int Grp;
};
// Nro de grupos de un aldo y del otro
struct equival
{
  int externa;
  int local;
};

typedef queue<struct point> cola ; 

struct grp
{
	int name;
	vector <struct ptcl*> members;
};
